// src/Service/book-sql.js

import request from '../util/request.js';

async function getBookSql() {
    try {
        const response = await request.get('/system/bookSql', {
            responseType: 'text' // 修改为 text，直接接收文本内容
        });

        // 验证响应是否为字符串
        if (typeof response.data !== 'string') {
            console.error('响应数据不是字符串类型');
            return;
        }

        // 打印文本内容（调试用）
        console.log('SQL Content:', response.data);

        // 提取文件名（保持原逻辑不变）
        let filename = 'books.sql';
        const disposition = response.headers['content-disposition'];
        if (disposition) {
            const fileNameMatch = disposition.match(/filename="?([^"]+)"?/);
            if (fileNameMatch && fileNameMatch[1]) {
                filename = decodeURIComponent(fileNameMatch[1]);
            }
        }

        // 创建 Blob 对象，类型为 text/plain
        const blob = new Blob([response.data], { type: 'text/plain;charset=utf-8' });

        // 创建 a 标签模拟点击下载（保持原逻辑不变）
        const downloadUrl = window.URL.createObjectURL(blob);
        const link = document.createElement('a');
        link.href = downloadUrl;
        link.setAttribute('download', filename);
        document.body.appendChild(link);
        link.click();

        // 清理对象 URL（保持原逻辑不变）
        window.URL.revokeObjectURL(downloadUrl);
        link.remove();

        alert('SQL 文件下载成功');

    } catch (error) {
        console.error('SQL 文件下载失败:', error);
        alert('SQL 文件下载失败，请重试');
    }
}

export { getBookSql };